package fr.coupedumonde2014.app.session;

import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;

import com.google.gson.Gson;

import fr.coupedumonde2014.app.modele.Utilisateur;

/**
 * Permet de gérer la sauvegarde de données dans la session
 * Fonctionne comme une MAP, système CLE / VALEUR
 */
public class SessionManager {

    private Context context; //le context de l'application

    //Les clés
    private static final String PREFS = "SESSION_PROFILE";
    private static final String PROFILE = "PROFILE";

    private static final String LOGIN = "LOGIN";
    private static final String PASSWORD = "PASSWORD";
    private static final String CONNECTE = "CONNECTE";

    public SessionManager(Context context){
        this.context = context;
    }

    public void setProfile(Utilisateur profile){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        SharedPreferences.Editor editor = pref.edit();

        String jsonProfile = (new Gson()).toJson(profile); //sauvegarde le profil en JSON, puique nous ne pouvons pas stocker d'objets non primitifs

        Log.d("PROFILE", jsonProfile);

        editor.putString(PROFILE, jsonProfile);
        editor.commit();

    }

    public Utilisateur getProfile(){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);

        String jsonProfile = pref.getString(PROFILE,""); //récupère donc en JSON, et demande a GSON de parser

        Log.d("PROFILE", jsonProfile);

        return (new Gson()).fromJson(jsonProfile,Utilisateur.class);
    }

    public void setLogin(String login){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(LOGIN, login);
        editor.commit();
    }
    public String getLogin(){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        return pref.getString(LOGIN,"");
    }
    public void setPassword(String password){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(PASSWORD, password);
        editor.commit();
    }
    public String getPassword(){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        return pref.getString(PASSWORD,"");
    }
    public void setConnecte(boolean connecte){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean(CONNECTE, connecte);
        editor.commit();
    }
    public boolean isConnecte(){
        SharedPreferences pref = context.getSharedPreferences(PREFS, 0);
        return pref.getBoolean(CONNECTE,false);
    }

}
